package cn.tedu.submarine;

import javax.swing.*;

/**战舰类*/
public class Battleship extends SeaObject {
    //特有属性
    //命数
    int life;

    public Battleship() {
        //访问超类的成员变量
        super(66,26,270,124,20);
        this.life = 5;
    }
    /** 获取战舰的命数的方法 */
    public int getLife(){
        //返回命数
        return life;
    }
    /**战舰减命的行为*/
    public void subtractLife(){
        //命数减1
        life--;
    }
    /**设计战舰增命的方法*/
    public void addLife(int num){
        //将打掉水雷潜艇,核潜艇得到的命数数值赋值给战舰的life变量属性.
        life += num;
    }

    /**重写move()移动方法*/
    public void move(){

    }
    /**战舰左移*/
    public void moveLeft(){
        //左移是x在改变，往左是减
        x -= speed;//x-向左
    }
    /**战舰右移*/
    public void moveRight(){
        x += speed;//x+向右
    }
    /**重写getImage()获取图片的抽象方法，重写方法跟大括号，
     * 因为方法有返回值类型,返回的图片类型是Images类声明的图片变量，否则报错*/
    @Override
    public ImageIcon getImage() {
        return Images.battleship;//返回调用的图片，静态的方法用"类名打点"访问
    }
    /**战舰发射深水炸弹---生成深水炸弹对象的方法*/
    public Bomb shootBomb(){
        return new Bomb(this.x,this.y);//this指代当前Battleship类对象,深水炸弹的初始坐标就是战舰的坐标
    }//报错因为有返回值类型是Bomb,所以必须return返回一个炸弹类型的对象。炸弹是带参的，得把炸弹的坐标传过来。
}
